package com.xwq.smartgelleryhub.api.aliyunTextToImage.model;

import cn.hutool.core.annotation.Alias;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * 创建文生图任务请求
 */
@Data
public class CreateTextToImageTaskRequest implements Serializable {
    
    /**
     * 必选，模型名称，例如 "wanx2.1-t2i-turbo"，= "wanx2.1-t2i-plus";
     */
    private String model;
    
    /**
     * 输入参数
     */
    private Input input;
    
    /**
     * 生成参数
     */
    private Parameters parameters;

    @Data
    public static class Input {
        /**
         * 必选，正向提示词
         */
        private String prompt;

        /**
         * 可选，负向提示词
         */
        @Alias("negative_prompt")
        private String negativePrompt;
    }

    @Data
    public static class Parameters implements Serializable {
        /**
         * 可选，输出图像的尺寸，默认值 "1024*1024"
         */
        private String size = "1024*1024";

        /**
         * 可选，生成图像的数量，默认值 1
         */
        private Integer n = 1;

        /**
         * 可选，是否开启 prompt 智能改写，默认值 true
         */
        @Alias("prompt_extend")
        @JsonProperty("promptExtend")
        private Boolean promptExtend = true;

        /**
         * 可选，是否添加水印，默认值 false
         */
        private Boolean watermark = false;

        /**
         * 可选，随机种子，示例值 42
         */
        private Integer seed = 42;
    }
}
